The present invention relates to bit aligned block transfer (bitblt) and the hardware used to copy or move data from one area of memory to another within the display hardware of a computer system.
A standard architecture for display hardware includes an image control processor for creating, modifying and moving image data, an image storage system for holding the image data after being processed by the image control system, and an image display system for translating the stored image data to a visible image on a cathode-ray-tube (CRT). A standard image display system uses raster scanning to display stored image data. In a bit mapped system, the raster screen is treated as an array of picture elements (pixels) which have a controllable intensity and/or color. To control the pixel output on the screen, the image control processor modifies the data value in the associated image storage system address location.
The quality of the image displayed on the screen is improved by increasing the number of raster lines and the number of pixels displayed in each line. However, increasing the number of pixels increases the amount of time the image control processor takes to modify a screen of image data. When blocks of data are modified on a screen, the image processor must read the data value associated with each pixel located in the block, modify it accordingly, and write each pixel into a memory location. Therefore, the larger the block of data, the more time required for the image processor to update the screen. As the image resolution is increased, a given block of data contains more pixels and therefore takes longer to process. To reduce the time it takes the image processor to move and modify blocks of image data, special bitblt hardware has been developed. Bitblt hardware modifies data arrays faster than a general purpose image control processor and frees the general purpose processor to perform additional processing functions. Traditionally, a bitblt involves reading a data value from the image storage system, performing a "raster operation" on the data, and writing the result back into the image storage system, this process being repeated for each pixel in the defined block to be modified. The raster operation generates modified data values by applying logic functions to the source and destination pixel values. Since the time required to perform the logic operation is usually less than the time required to move the data to and from the image storage system, these data transfers have become a major bottleneck in performing bitblt operations.